{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 任务说明\n",
    "\n",
    "- 任务主题：论文数量统计，即统计2019年全年计算机各个方向论文数量；\n",
    "- 任务内容：赛题的理解、使用 **Pandas** 读取数据并进行统计；\n",
    "- 任务成果：学习 **Pandas** 的基础操作；\n",
    "- 可参考的学习资料：[开源组织Datawhale joyful-pandas项目](https://github.com/datawhalechina/joyful-pandas)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据集介绍\n",
    "\n",
    "- 数据集来源：[数据集链接](https://www.kaggle.com/Cornell-University/arxiv)；\n",
    "- 数据集的格式如下：\n",
    "  - `id`：arXiv ID，可用于访问论文；\n",
    "  - `submitter`：论文提交者；\n",
    "  - `authors`：论文作者；\n",
    "  - `title`：论文标题；\n",
    "  - `comments`：论文页数和图表等其他信息；\n",
    "  - `journal-ref`：论文发表的期刊的信息；\n",
    "  - `doi`：数字对象标识符，[https://www.doi.org](https://www.doi.org)；\n",
    "  - `report-no`：报告编号；\n",
    "  - `categories`：论文在 arXiv 系统的所属类别或标签；\n",
    "  - `license`：文章的许可证；\n",
    "  - `abstract`：论文摘要；\n",
    "  - `versions`：论文版本；\n",
    "  - `authors_parsed`：作者的信息。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```\n",
    "\"root\":{\n",
    "\t\t\"id\":string\"0704.0001\"\n",
    "\t\t\"submitter\":string\"Pavel Nadolsky\"\n",
    "\t\t\"authors\":string\"C. Bal\\'azs, E. L. Berger, P. M. Nadolsky, C.-P. Yuan\"\n",
    "\t\t\"title\":string\"Calculation of prompt diphoton production cross sections at Tevatron and LHC energies\"\n",
    "\t\t\"comments\":string\"37 pages, 15 figures; published version\"\n",
    "\t\t\"journal-ref\":string\"Phys.Rev.D76:013009,2007\"\n",
    "\t\t\"doi\":string\"10.1103/PhysRevD.76.013009\"\n",
    "\t\t\"report-no\":string\"ANL-HEP-PR-07-12\"\n",
    "\t\t\"categories\":string\"hep-ph\"\n",
    "\t\t\"license\":NULL\n",
    "\t\t\"abstract\":string\"  A fully differential calculation in perturbative quantum chromodynamics is presented for the production of massive photon pairs at hadron colliders. All next-to-leading order perturbative contributions from quark-antiquark, gluon-(anti)quark, and gluon-gluon subprocesses are included, as well as all-orders resummation of initial-state gluon radiation valid at next-to-next-to leading logarithmic accuracy. The region of phase space is specified in which the calculation is most reliable. Good agreement is demonstrated with data from the Fermilab Tevatron, and predictions are made for more detailed tests with CDF and DO data. Predictions are shown for distributions of diphoton pairs produced at the energy of the Large Hadron Collider (LHC). Distributions of the diphoton pairs from the decay of a Higgs boson are contrasted with those produced from QCD processes at the LHC, showing that enhanced sensitivity to the signal can be obtained with judicious selection of events.\"\n",
    "\t\t\"versions\":[\n",
    "\t\t\t\t0:{\n",
    "\t\t\t\t\t\t\"version\":string\"v1\"\n",
    "\t\t\t\t\t\t\"created\":string\"Mon, 2 Apr 2007 19:18:42 GMT\"\n",
    "\t\t\t\t\t}\n",
    "\t\t\t\t1:{\n",
    "\t\t\t\t\t\t\"version\":string\"v2\"\n",
    "\t\t\t\t\t\t\"created\":string\"Tue, 24 Jul 2007 20:10:27 GMT\"\n",
    "\t\t\t\t\t}]\n",
    "\t\t\"update_date\":string\"2008-11-26\"\n",
    "\t\t\"authors_parsed\":[\n",
    "\t\t\t\t0:[\n",
    "\t\t\t\t\t\t0:string\"Balázs\"\n",
    "\t\t\t\t\t\t1:string\"C.\"\n",
    "\t\t\t\t\t\t2:string\"\"]\n",
    "\t\t\t\t1:[\n",
    "\t\t\t\t\t\t0:string\"Berger\"\n",
    "\t\t\t\t\t\t1:string\"E. L.\"\n",
    "\t\t\t\t\t\t2:string\"\"]\n",
    "\t\t\t\t2:[\n",
    "\t\t\t\t\t\t0:string\"Nadolsky\"\n",
    "\t\t\t\t\t\t1:string\"P. M.\"\n",
    "\t\t\t\t\t\t2:string\"\"]\n",
    "\t\t\t\t3:[\n",
    "\t\t\t\t\t\t0:string\"Yuan\"\n",
    "\t\t\t\t\t\t1:string\"C. -P.\"\n",
    "\t\t\t\t\t\t2:string\"\"]]\n",
    "}\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## arxiv论文类别介绍\n",
    "\n",
    "我们从arxiv官网，查询到论文的类别名称以及其解释如下。\n",
    "\n",
    "链接：[https://arxiv.org/help/api/user-manual](https://arxiv.org/help/api/user-manual)  的 5.3 小节的 Subject Classifications 的部分，或 [https://arxiv.org/category_taxonomy](https://arxiv.org/category_taxonomy)， 具体的153种paper的类别部分如下：\n",
    "\n",
    "```json\n",
    "'astro-ph': 'Astrophysics',\n",
    "'astro-ph.CO': 'Cosmology and Nongalactic Astrophysics',\n",
    "'astro-ph.EP': 'Earth and Planetary Astrophysics',\n",
    "'astro-ph.GA': 'Astrophysics of Galaxies',\n",
    "'cs.AI': 'Artificial Intelligence',\n",
    "'cs.AR': 'Hardware Architecture',\n",
    "'cs.CC': 'Computational Complexity',\n",
    "'cs.CE': 'Computational Engineering, Finance, and Science',\n",
    "'cs.CV': 'Computer Vision and Pattern Recognition',\n",
    "'cs.CY': 'Computers and Society',\n",
    "'cs.DB': 'Databases',\n",
    "'cs.DC': 'Distributed, Parallel, and Cluster Computing',\n",
    "'cs.DL': 'Digital Libraries',\n",
    "'cs.NA': 'Numerical Analysis',\n",
    "'cs.NE': 'Neural and Evolutionary Computing',\n",
    "'cs.NI': 'Networking and Internet Architecture',\n",
    "'cs.OH': 'Other Computer Science',\n",
    "'cs.OS': 'Operating Systems',\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 具体代码实现以及讲解\n",
    "\n",
    "### 导入package并读取原始数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:19:22.665359Z",
     "start_time": "2021-01-02T04:19:22.001309Z"
    }
   },
   "outputs": [],
   "source": [
    "# 导入所需的package\n",
    "import seaborn as sns #用于画图\n",
    "from bs4 import BeautifulSoup #用于爬取arxiv的数据\n",
    "import re #用于正则表达式，匹配字符串的模式\n",
    "import requests #用于网络连接，发送网络请求，使用域名获取对应信息\n",
    "import json #读取数据，我们的数据为json格式的\n",
    "import pandas as pd #数据处理，数据分析\n",
    "import matplotlib.pyplot as plt #画图工具"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这里使用的package的版本如下（python 3.7.4）：\n",
    "\n",
    "- seaborn：0.9.0\n",
    "- BeautifulSoup：4.8.0\n",
    "- requests：2.22.0\n",
    "- json：0.8.5\n",
    "- pandas：0.25.1\n",
    "- matplotlib：3.1.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:19:22.885771Z",
     "start_time": "2021-01-02T04:19:22.871625Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100, 14)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读入数据\n",
    "data  = []\n",
    "\n",
    "#使用with语句优势：1.自动关闭文件句柄；2.自动显示（处理）文件读取数据异常\n",
    "with open(\"arxiv-metadata-oai-snapshot.json\", 'r') as f: \n",
    "    for idx, line in enumerate(f): \n",
    "        \n",
    "        # 读取前100行，如果读取所有数据需要8G内存\n",
    "        if idx >= 100:\n",
    "            break\n",
    "        \n",
    "        data.append(json.loads(line))\n",
    "        \n",
    "data = pd.DataFrame(data) #将list变为dataframe格式，方便使用pandas进行分析\n",
    "data.shape #显示数据大小"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:19:23.611965Z",
     "start_time": "2021-01-02T04:19:23.591544Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>submitter</th>\n",
       "      <th>authors</th>\n",
       "      <th>title</th>\n",
       "      <th>comments</th>\n",
       "      <th>journal-ref</th>\n",
       "      <th>doi</th>\n",
       "      <th>report-no</th>\n",
       "      <th>categories</th>\n",
       "      <th>license</th>\n",
       "      <th>abstract</th>\n",
       "      <th>versions</th>\n",
       "      <th>update_date</th>\n",
       "      <th>authors_parsed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0704.0001</td>\n",
       "      <td>Pavel Nadolsky</td>\n",
       "      <td>C. Bal\\'azs, E. L. Berger, P. M. Nadolsky, C.-...</td>\n",
       "      <td>Calculation of prompt diphoton production cros...</td>\n",
       "      <td>37 pages, 15 figures; published version</td>\n",
       "      <td>Phys.Rev.D76:013009,2007</td>\n",
       "      <td>10.1103/PhysRevD.76.013009</td>\n",
       "      <td>ANL-HEP-PR-07-12</td>\n",
       "      <td>hep-ph</td>\n",
       "      <td>None</td>\n",
       "      <td>A fully differential calculation in perturba...</td>\n",
       "      <td>[{'version': 'v1', 'created': 'Mon, 2 Apr 2007...</td>\n",
       "      <td>2008-11-26</td>\n",
       "      <td>[[Balázs, C., ], [Berger, E. L., ], [Nadolsky,...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0704.0002</td>\n",
       "      <td>Louis Theran</td>\n",
       "      <td>Ileana Streinu and Louis Theran</td>\n",
       "      <td>Sparsity-certifying Graph Decompositions</td>\n",
       "      <td>To appear in Graphs and Combinatorics</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>math.CO cs.CG</td>\n",
       "      <td>http://arxiv.org/licenses/nonexclusive-distrib...</td>\n",
       "      <td>We describe a new algorithm, the $(k,\\ell)$-...</td>\n",
       "      <td>[{'version': 'v1', 'created': 'Sat, 31 Mar 200...</td>\n",
       "      <td>2008-12-13</td>\n",
       "      <td>[[Streinu, Ileana, ], [Theran, Louis, ]]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0704.0003</td>\n",
       "      <td>Hongjun Pan</td>\n",
       "      <td>Hongjun Pan</td>\n",
       "      <td>The evolution of the Earth-Moon system based o...</td>\n",
       "      <td>23 pages, 3 figures</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>physics.gen-ph</td>\n",
       "      <td>None</td>\n",
       "      <td>The evolution of Earth-Moon system is descri...</td>\n",
       "      <td>[{'version': 'v1', 'created': 'Sun, 1 Apr 2007...</td>\n",
       "      <td>2008-01-13</td>\n",
       "      <td>[[Pan, Hongjun, ]]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0704.0004</td>\n",
       "      <td>David Callan</td>\n",
       "      <td>David Callan</td>\n",
       "      <td>A determinant of Stirling cycle numbers counts...</td>\n",
       "      <td>11 pages</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>math.CO</td>\n",
       "      <td>None</td>\n",
       "      <td>We show that a determinant of Stirling cycle...</td>\n",
       "      <td>[{'version': 'v1', 'created': 'Sat, 31 Mar 200...</td>\n",
       "      <td>2007-05-23</td>\n",
       "      <td>[[Callan, David, ]]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0704.0005</td>\n",
       "      <td>Alberto Torchinsky</td>\n",
       "      <td>Wael Abu-Shammala and Alberto Torchinsky</td>\n",
       "      <td>From dyadic $\\Lambda_{\\alpha}$ to $\\Lambda_{\\a...</td>\n",
       "      <td>None</td>\n",
       "      <td>Illinois J. Math. 52 (2008) no.2, 681-689</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>math.CA math.FA</td>\n",
       "      <td>None</td>\n",
       "      <td>In this paper we show how to compute the $\\L...</td>\n",
       "      <td>[{'version': 'v1', 'created': 'Mon, 2 Apr 2007...</td>\n",
       "      <td>2013-10-15</td>\n",
       "      <td>[[Abu-Shammala, Wael, ], [Torchinsky, Alberto, ]]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          id           submitter  \\\n",
       "0  0704.0001      Pavel Nadolsky   \n",
       "1  0704.0002        Louis Theran   \n",
       "2  0704.0003         Hongjun Pan   \n",
       "3  0704.0004        David Callan   \n",
       "4  0704.0005  Alberto Torchinsky   \n",
       "\n",
       "                                             authors  \\\n",
       "0  C. Bal\\'azs, E. L. Berger, P. M. Nadolsky, C.-...   \n",
       "1                    Ileana Streinu and Louis Theran   \n",
       "2                                        Hongjun Pan   \n",
       "3                                       David Callan   \n",
       "4           Wael Abu-Shammala and Alberto Torchinsky   \n",
       "\n",
       "                                               title  \\\n",
       "0  Calculation of prompt diphoton production cros...   \n",
       "1           Sparsity-certifying Graph Decompositions   \n",
       "2  The evolution of the Earth-Moon system based o...   \n",
       "3  A determinant of Stirling cycle numbers counts...   \n",
       "4  From dyadic $\\Lambda_{\\alpha}$ to $\\Lambda_{\\a...   \n",
       "\n",
       "                                  comments  \\\n",
       "0  37 pages, 15 figures; published version   \n",
       "1    To appear in Graphs and Combinatorics   \n",
       "2                      23 pages, 3 figures   \n",
       "3                                 11 pages   \n",
       "4                                     None   \n",
       "\n",
       "                                 journal-ref                         doi  \\\n",
       "0                   Phys.Rev.D76:013009,2007  10.1103/PhysRevD.76.013009   \n",
       "1                                       None                        None   \n",
       "2                                       None                        None   \n",
       "3                                       None                        None   \n",
       "4  Illinois J. Math. 52 (2008) no.2, 681-689                        None   \n",
       "\n",
       "          report-no       categories  \\\n",
       "0  ANL-HEP-PR-07-12           hep-ph   \n",
       "1              None    math.CO cs.CG   \n",
       "2              None   physics.gen-ph   \n",
       "3              None          math.CO   \n",
       "4              None  math.CA math.FA   \n",
       "\n",
       "                                             license  \\\n",
       "0                                               None   \n",
       "1  http://arxiv.org/licenses/nonexclusive-distrib...   \n",
       "2                                               None   \n",
       "3                                               None   \n",
       "4                                               None   \n",
       "\n",
       "                                            abstract  \\\n",
       "0    A fully differential calculation in perturba...   \n",
       "1    We describe a new algorithm, the $(k,\\ell)$-...   \n",
       "2    The evolution of Earth-Moon system is descri...   \n",
       "3    We show that a determinant of Stirling cycle...   \n",
       "4    In this paper we show how to compute the $\\L...   \n",
       "\n",
       "                                            versions update_date  \\\n",
       "0  [{'version': 'v1', 'created': 'Mon, 2 Apr 2007...  2008-11-26   \n",
       "1  [{'version': 'v1', 'created': 'Sat, 31 Mar 200...  2008-12-13   \n",
       "2  [{'version': 'v1', 'created': 'Sun, 1 Apr 2007...  2008-01-13   \n",
       "3  [{'version': 'v1', 'created': 'Sat, 31 Mar 200...  2007-05-23   \n",
       "4  [{'version': 'v1', 'created': 'Mon, 2 Apr 2007...  2013-10-15   \n",
       "\n",
       "                                      authors_parsed  \n",
       "0  [[Balázs, C., ], [Berger, E. L., ], [Nadolsky,...  \n",
       "1           [[Streinu, Ileana, ], [Theran, Louis, ]]  \n",
       "2                                 [[Pan, Hongjun, ]]  \n",
       "3                                [[Callan, David, ]]  \n",
       "4  [[Abu-Shammala, Wael, ], [Torchinsky, Alberto, ]]  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head() #显示数据的前五行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:19:43.502195Z",
     "start_time": "2021-01-02T04:19:24.012183Z"
    },
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "def readArxivFile(path, columns=['id', 'submitter', 'authors', 'title', 'comments', 'journal-ref', 'doi',\n",
    "       'report-no', 'categories', 'license', 'abstract', 'versions',\n",
    "       'update_date', 'authors_parsed'], count=None):\n",
    "    '''\n",
    "    定义读取文件的函数\n",
    "        path: 文件路径\n",
    "        columns: 需要选择的列\n",
    "        count: 读取行数\n",
    "    '''\n",
    "    \n",
    "    data  = []\n",
    "    with open(path, 'r') as f: \n",
    "        for idx, line in enumerate(f): \n",
    "            if idx == count:\n",
    "                break\n",
    "                \n",
    "            d = json.loads(line)\n",
    "            d = {col : d[col] for col in columns}\n",
    "            data.append(d)\n",
    "\n",
    "    data = pd.DataFrame(data)\n",
    "    return data\n",
    "\n",
    "data = readArxivFile('arxiv-metadata-oai-snapshot.json', ['id', 'categories', 'update_date'])\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据预处理\n",
    "\n",
    "首先我们先来粗略统计论文的种类信息：\n",
    "\n",
    "- `count`：一列数据的元素个数；\n",
    "- `unique`：一列数据中元素的种类；\n",
    "- `top`：一列数据中出现频率最高的元素；\n",
    "- `freq`：一列数据中出现频率最高的元素的个数；"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:19:43.951021Z",
     "start_time": "2021-01-02T04:19:43.504235Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count      1796911\n",
       "unique       62055\n",
       "top       astro-ph\n",
       "freq         86914\n",
       "Name: categories, dtype: object"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[\"categories\"].describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T03:39:27.397724Z",
     "start_time": "2021-01-02T03:39:27.392255Z"
    }
   },
   "source": [
    "以上的结果表明：共有1338381个数据，有61371个子类（因为有论文的类别是多个，例如一篇paper的类别是CS.AI & CS.MM和一篇paper的类别是CS.AI & CS.OS属于不同的子类别，这里仅仅是粗略统计），其中最多的种类是astro-ph，即Astrophysics（天体物理学），共出现了86914次。\n",
    "\n",
    "由于部分论文的类别不止一种，所以下面我们判断在本数据集中共出现了多少种独立的数据集。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:19:45.909106Z",
     "start_time": "2021-01-02T04:19:43.952599Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'acc-phys',\n",
       " 'adap-org',\n",
       " 'alg-geom',\n",
       " 'ao-sci',\n",
       " 'astro-ph',\n",
       " 'astro-ph.CO',\n",
       " 'astro-ph.EP',\n",
       " 'astro-ph.GA',\n",
       " 'astro-ph.HE',\n",
       " 'astro-ph.IM',\n",
       " 'astro-ph.SR',\n",
       " 'atom-ph',\n",
       " 'bayes-an',\n",
       " 'chao-dyn',\n",
       " 'chem-ph',\n",
       " 'cmp-lg',\n",
       " 'comp-gas',\n",
       " 'cond-mat',\n",
       " 'cond-mat.dis-nn',\n",
       " 'cond-mat.mes-hall',\n",
       " 'cond-mat.mtrl-sci',\n",
       " 'cond-mat.other',\n",
       " 'cond-mat.quant-gas',\n",
       " 'cond-mat.soft',\n",
       " 'cond-mat.stat-mech',\n",
       " 'cond-mat.str-el',\n",
       " 'cond-mat.supr-con',\n",
       " 'cs.AI',\n",
       " 'cs.AR',\n",
       " 'cs.CC',\n",
       " 'cs.CE',\n",
       " 'cs.CG',\n",
       " 'cs.CL',\n",
       " 'cs.CR',\n",
       " 'cs.CV',\n",
       " 'cs.CY',\n",
       " 'cs.DB',\n",
       " 'cs.DC',\n",
       " 'cs.DL',\n",
       " 'cs.DM',\n",
       " 'cs.DS',\n",
       " 'cs.ET',\n",
       " 'cs.FL',\n",
       " 'cs.GL',\n",
       " 'cs.GR',\n",
       " 'cs.GT',\n",
       " 'cs.HC',\n",
       " 'cs.IR',\n",
       " 'cs.IT',\n",
       " 'cs.LG',\n",
       " 'cs.LO',\n",
       " 'cs.MA',\n",
       " 'cs.MM',\n",
       " 'cs.MS',\n",
       " 'cs.NA',\n",
       " 'cs.NE',\n",
       " 'cs.NI',\n",
       " 'cs.OH',\n",
       " 'cs.OS',\n",
       " 'cs.PF',\n",
       " 'cs.PL',\n",
       " 'cs.RO',\n",
       " 'cs.SC',\n",
       " 'cs.SD',\n",
       " 'cs.SE',\n",
       " 'cs.SI',\n",
       " 'cs.SY',\n",
       " 'dg-ga',\n",
       " 'econ.EM',\n",
       " 'econ.GN',\n",
       " 'econ.TH',\n",
       " 'eess.AS',\n",
       " 'eess.IV',\n",
       " 'eess.SP',\n",
       " 'eess.SY',\n",
       " 'funct-an',\n",
       " 'gr-qc',\n",
       " 'hep-ex',\n",
       " 'hep-lat',\n",
       " 'hep-ph',\n",
       " 'hep-th',\n",
       " 'math-ph',\n",
       " 'math.AC',\n",
       " 'math.AG',\n",
       " 'math.AP',\n",
       " 'math.AT',\n",
       " 'math.CA',\n",
       " 'math.CO',\n",
       " 'math.CT',\n",
       " 'math.CV',\n",
       " 'math.DG',\n",
       " 'math.DS',\n",
       " 'math.FA',\n",
       " 'math.GM',\n",
       " 'math.GN',\n",
       " 'math.GR',\n",
       " 'math.GT',\n",
       " 'math.HO',\n",
       " 'math.IT',\n",
       " 'math.KT',\n",
       " 'math.LO',\n",
       " 'math.MG',\n",
       " 'math.MP',\n",
       " 'math.NA',\n",
       " 'math.NT',\n",
       " 'math.OA',\n",
       " 'math.OC',\n",
       " 'math.PR',\n",
       " 'math.QA',\n",
       " 'math.RA',\n",
       " 'math.RT',\n",
       " 'math.SG',\n",
       " 'math.SP',\n",
       " 'math.ST',\n",
       " 'mtrl-th',\n",
       " 'nlin.AO',\n",
       " 'nlin.CD',\n",
       " 'nlin.CG',\n",
       " 'nlin.PS',\n",
       " 'nlin.SI',\n",
       " 'nucl-ex',\n",
       " 'nucl-th',\n",
       " 'patt-sol',\n",
       " 'physics.acc-ph',\n",
       " 'physics.ao-ph',\n",
       " 'physics.app-ph',\n",
       " 'physics.atm-clus',\n",
       " 'physics.atom-ph',\n",
       " 'physics.bio-ph',\n",
       " 'physics.chem-ph',\n",
       " 'physics.class-ph',\n",
       " 'physics.comp-ph',\n",
       " 'physics.data-an',\n",
       " 'physics.ed-ph',\n",
       " 'physics.flu-dyn',\n",
       " 'physics.gen-ph',\n",
       " 'physics.geo-ph',\n",
       " 'physics.hist-ph',\n",
       " 'physics.ins-det',\n",
       " 'physics.med-ph',\n",
       " 'physics.optics',\n",
       " 'physics.plasm-ph',\n",
       " 'physics.pop-ph',\n",
       " 'physics.soc-ph',\n",
       " 'physics.space-ph',\n",
       " 'plasm-ph',\n",
       " 'q-alg',\n",
       " 'q-bio',\n",
       " 'q-bio.BM',\n",
       " 'q-bio.CB',\n",
       " 'q-bio.GN',\n",
       " 'q-bio.MN',\n",
       " 'q-bio.NC',\n",
       " 'q-bio.OT',\n",
       " 'q-bio.PE',\n",
       " 'q-bio.QM',\n",
       " 'q-bio.SC',\n",
       " 'q-bio.TO',\n",
       " 'q-fin.CP',\n",
       " 'q-fin.EC',\n",
       " 'q-fin.GN',\n",
       " 'q-fin.MF',\n",
       " 'q-fin.PM',\n",
       " 'q-fin.PR',\n",
       " 'q-fin.RM',\n",
       " 'q-fin.ST',\n",
       " 'q-fin.TR',\n",
       " 'quant-ph',\n",
       " 'solv-int',\n",
       " 'stat.AP',\n",
       " 'stat.CO',\n",
       " 'stat.ME',\n",
       " 'stat.ML',\n",
       " 'stat.OT',\n",
       " 'stat.TH',\n",
       " 'supr-con'}"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "unique_categories = set([i for l in [x.split(' ') for x in data[\"categories\"]] for i in l])\n",
    "len(unique_categories)\n",
    "unique_categories"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这里使用了 split 函数将多类别使用 “ ”（空格）分开，组成list，并使用 for 循环将独立出现的类别找出来，并使用 set 类别，将重复项去除得到最终所有的独立paper种类。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从以上结果发现，共有176种论文种类，比我们直接从 [https://arxiv.org/help/api/user-manual](https://arxiv.org/help/api/user-manual)  的 5.3 小节的 Subject Classifications 的部分或 [https://arxiv.org/category_taxonomy](https://arxiv.org/category_taxonomy)中的到的类别少，这说明存在一些官网上没有的类别，这是一个小细节。不过对于我们的计算机方向的论文没有影响，依然是以下的40个类别，我们从原数据中提取的和从官网的到的种类是可以一一对应的。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们的任务要求对于2019年以后的paper进行分析，所以首先对于时间特征进行预处理，从而得到2019年以后的所有种类的论文："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:19:46.628162Z",
     "start_time": "2021-01-02T04:19:45.910463Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>categories</th>\n",
       "      <th>year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0704.0297</td>\n",
       "      <td>astro-ph</td>\n",
       "      <td>2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0704.0342</td>\n",
       "      <td>math.AT</td>\n",
       "      <td>2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0704.0360</td>\n",
       "      <td>astro-ph</td>\n",
       "      <td>2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0704.0525</td>\n",
       "      <td>gr-qc</td>\n",
       "      <td>2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0704.0535</td>\n",
       "      <td>astro-ph</td>\n",
       "      <td>2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>395118</th>\n",
       "      <td>quant-ph/9911051</td>\n",
       "      <td>quant-ph</td>\n",
       "      <td>2020</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>395119</th>\n",
       "      <td>solv-int/9511005</td>\n",
       "      <td>solv-int nlin.SI</td>\n",
       "      <td>2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>395120</th>\n",
       "      <td>solv-int/9809008</td>\n",
       "      <td>solv-int nlin.SI</td>\n",
       "      <td>2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>395121</th>\n",
       "      <td>solv-int/9909010</td>\n",
       "      <td>solv-int adap-org hep-th nlin.AO nlin.SI</td>\n",
       "      <td>2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>395122</th>\n",
       "      <td>solv-int/9909014</td>\n",
       "      <td>solv-int nlin.SI</td>\n",
       "      <td>2019</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>395123 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                      id                                categories  year\n",
       "0              0704.0297                                  astro-ph  2019\n",
       "1              0704.0342                                   math.AT  2019\n",
       "2              0704.0360                                  astro-ph  2019\n",
       "3              0704.0525                                     gr-qc  2019\n",
       "4              0704.0535                                  astro-ph  2019\n",
       "...                  ...                                       ...   ...\n",
       "395118  quant-ph/9911051                                  quant-ph  2020\n",
       "395119  solv-int/9511005                          solv-int nlin.SI  2019\n",
       "395120  solv-int/9809008                          solv-int nlin.SI  2019\n",
       "395121  solv-int/9909010  solv-int adap-org hep-th nlin.AO nlin.SI  2019\n",
       "395122  solv-int/9909014                          solv-int nlin.SI  2019\n",
       "\n",
       "[395123 rows x 3 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[\"year\"] = pd.to_datetime(data[\"update_date\"]).dt.year #将update_date从例如2019-02-20的str变为datetime格式，并提取处year\n",
    "del data[\"update_date\"] #删除 update_date特征，其使命已完成\n",
    "data = data[data[\"year\"] >= 2019] #找出 year 中2019年以后的数据，并将其他数据删除\n",
    "\n",
    "# data.groupby(['categories','year']) #以 categories 进行排序，如果同一个categories 相同则使用 year 特征进行排序\n",
    "data.reset_index(drop=True, inplace=True) #重新编号\n",
    "data #查看结果"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这里我们就已经得到了所有2019年以后的论文，下面我们挑选出计算机领域内的所有文章："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:19:54.833193Z",
     "start_time": "2021-01-02T04:19:50.681625Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>group_name</th>\n",
       "      <th>archive_name</th>\n",
       "      <th>archive_id</th>\n",
       "      <th>category_name</th>\n",
       "      <th>categories</th>\n",
       "      <th>category_description</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Artificial Intelligence</td>\n",
       "      <td>cs.AI</td>\n",
       "      <td>Covers all areas of AI except Vision, Robotics...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Hardware Architecture</td>\n",
       "      <td>cs.AR</td>\n",
       "      <td>Covers systems organization and hardware archi...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computational Complexity</td>\n",
       "      <td>cs.CC</td>\n",
       "      <td>Covers models of computation, complexity class...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computational Engineering, Finance, and Science</td>\n",
       "      <td>cs.CE</td>\n",
       "      <td>Covers applications of computer science to the...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computer Science</td>\n",
       "      <td>Computational Geometry</td>\n",
       "      <td>cs.CG</td>\n",
       "      <td>Roughly includes material in ACM Subject Class...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>150</th>\n",
       "      <td>Statistics</td>\n",
       "      <td>Statistics</td>\n",
       "      <td>Statistics</td>\n",
       "      <td>Computation</td>\n",
       "      <td>stat.CO</td>\n",
       "      <td>Algorithms, Simulation, Visualization</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>151</th>\n",
       "      <td>Statistics</td>\n",
       "      <td>Statistics</td>\n",
       "      <td>Statistics</td>\n",
       "      <td>Methodology</td>\n",
       "      <td>stat.ME</td>\n",
       "      <td>Design, Surveys, Model Selection, Multiple Tes...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>152</th>\n",
       "      <td>Statistics</td>\n",
       "      <td>Statistics</td>\n",
       "      <td>Statistics</td>\n",
       "      <td>Machine Learning</td>\n",
       "      <td>stat.ML</td>\n",
       "      <td>Covers machine learning papers (supervised, un...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153</th>\n",
       "      <td>Statistics</td>\n",
       "      <td>Statistics</td>\n",
       "      <td>Statistics</td>\n",
       "      <td>Other Statistics</td>\n",
       "      <td>stat.OT</td>\n",
       "      <td>Work in statistics that does not fit into the ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>154</th>\n",
       "      <td>Statistics</td>\n",
       "      <td>Statistics</td>\n",
       "      <td>Statistics</td>\n",
       "      <td>Statistics Theory</td>\n",
       "      <td>stat.TH</td>\n",
       "      <td>stat.TH is an alias for math.ST. Asymptotics, ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>155 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           group_name      archive_name        archive_id  \\\n",
       "0    Computer Science  Computer Science  Computer Science   \n",
       "1    Computer Science  Computer Science  Computer Science   \n",
       "2    Computer Science  Computer Science  Computer Science   \n",
       "3    Computer Science  Computer Science  Computer Science   \n",
       "4    Computer Science  Computer Science  Computer Science   \n",
       "..                ...               ...               ...   \n",
       "150        Statistics        Statistics        Statistics   \n",
       "151        Statistics        Statistics        Statistics   \n",
       "152        Statistics        Statistics        Statistics   \n",
       "153        Statistics        Statistics        Statistics   \n",
       "154        Statistics        Statistics        Statistics   \n",
       "\n",
       "                                       category_name categories  \\\n",
       "0                            Artificial Intelligence      cs.AI   \n",
       "1                              Hardware Architecture      cs.AR   \n",
       "2                           Computational Complexity      cs.CC   \n",
       "3    Computational Engineering, Finance, and Science      cs.CE   \n",
       "4                             Computational Geometry      cs.CG   \n",
       "..                                               ...        ...   \n",
       "150                                      Computation    stat.CO   \n",
       "151                                      Methodology    stat.ME   \n",
       "152                                 Machine Learning    stat.ML   \n",
       "153                                 Other Statistics    stat.OT   \n",
       "154                                Statistics Theory    stat.TH   \n",
       "\n",
       "                                  category_description  \n",
       "0    Covers all areas of AI except Vision, Robotics...  \n",
       "1    Covers systems organization and hardware archi...  \n",
       "2    Covers models of computation, complexity class...  \n",
       "3    Covers applications of computer science to the...  \n",
       "4    Roughly includes material in ACM Subject Class...  \n",
       "..                                                 ...  \n",
       "150              Algorithms, Simulation, Visualization  \n",
       "151  Design, Surveys, Model Selection, Multiple Tes...  \n",
       "152  Covers machine learning papers (supervised, un...  \n",
       "153  Work in statistics that does not fit into the ...  \n",
       "154  stat.TH is an alias for math.ST. Asymptotics, ...  \n",
       "\n",
       "[155 rows x 6 columns]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#爬取所有的类别\n",
    "website_url = requests.get('https://arxiv.org/category_taxonomy').text #获取网页的文本数据\n",
    "soup = BeautifulSoup(website_url,'lxml') #爬取数据，这里使用lxml的解析器，加速\n",
    "root = soup.find('div',{'id':'category_taxonomy_list'}) #找出 BeautifulSoup 对应的标签入口\n",
    "tags = root.find_all([\"h2\",\"h3\",\"h4\",\"p\"], recursive=True) #读取 tags\n",
    "\n",
    "#初始化 str 和 list 变量\n",
    "level_1_name = \"\"\n",
    "level_2_name = \"\"\n",
    "level_2_code = \"\"\n",
    "level_1_names = []\n",
    "level_2_codes = []\n",
    "level_2_names = []\n",
    "level_3_codes = []\n",
    "level_3_names = []\n",
    "level_3_notes = []\n",
    "\n",
    "#进行\n",
    "for t in tags:\n",
    "    if t.name == \"h2\":\n",
    "        level_1_name = t.text    \n",
    "        level_2_code = t.text\n",
    "        level_2_name = t.text\n",
    "    elif t.name == \"h3\":\n",
    "        raw = t.text\n",
    "        level_2_code = re.sub(r\"(.*)\\((.*)\\)\",r\"\\2\",raw) #正则表达式：模式字符串：(.*)\\((.*)\\)；被替换字符串\"\\2\"；被处理字符串：raw\n",
    "        level_2_name = re.sub(r\"(.*)\\((.*)\\)\",r\"\\1\",raw)\n",
    "    elif t.name == \"h4\":\n",
    "        raw = t.text\n",
    "        level_3_code = re.sub(r\"(.*) \\((.*)\\)\",r\"\\1\",raw)\n",
    "        level_3_name = re.sub(r\"(.*) \\((.*)\\)\",r\"\\2\",raw)\n",
    "    elif t.name == \"p\":\n",
    "        notes = t.text\n",
    "        level_1_names.append(level_1_name)\n",
    "        level_2_names.append(level_2_name)\n",
    "        level_2_codes.append(level_2_code)\n",
    "        level_3_names.append(level_3_name)\n",
    "        level_3_codes.append(level_3_code)\n",
    "        level_3_notes.append(notes)\n",
    "\n",
    "#根据以上信息生成dataframe格式的数据\n",
    "df_taxonomy = pd.DataFrame({\n",
    "    'group_name' : level_1_names,\n",
    "    'archive_name' : level_2_names,\n",
    "    'archive_id' : level_2_codes,\n",
    "    'category_name' : level_3_names,\n",
    "    'categories' : level_3_codes,\n",
    "    'category_description': level_3_notes\n",
    "    \n",
    "})\n",
    "\n",
    "#按照 \"group_name\" 进行分组，在组内使用 \"archive_name\" 进行排序\n",
    "df_taxonomy.groupby([\"group_name\",\"archive_name\"])\n",
    "df_taxonomy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这里主要说明一下上面代码中的正则操作，这里我们使用re.sub来用于替换字符串中的匹配项\n",
    "\n",
    "- pattern : 正则中的模式字符串。\n",
    "- repl : 替换的字符串，也可为一个函数。\n",
    "- string : 要被查找替换的原始字符串。\n",
    "- count : 模式匹配后替换的最大次数，默认 0 表示替换所有的匹配。\n",
    "- flags : 编译时用的匹配模式，数字形式。\n",
    "- 其中pattern、repl、string为必选参数\n",
    "\n",
    "re.sub(pattern, repl, string, count=0, flags=0)\n",
    "\n",
    "实例如下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:19:59.140189Z",
     "start_time": "2021-01-02T04:19:59.132494Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "电话号码 :  2004-959-559 \n",
      "电话号码 :  2004959559\n"
     ]
    }
   ],
   "source": [
    "import re\n",
    "\n",
    "phone = \"2004-959-559 # 这是一个电话号码\"\n",
    " \n",
    "# 删除注释\n",
    "num = re.sub(r'#.*$', \"\", phone)\n",
    "print (\"电话号码 : \", num)\n",
    " \n",
    "# 移除非数字的内容\n",
    "num = re.sub(r'\\D', \"\", phone)\n",
    "print (\"电话号码 : \", num)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "详细了解可以参考：[https://www.runoob.com/python3/python3-reg-expressions.html](https://www.runoob.com/python3/python3-reg-expressions.html)\n",
    "\n",
    "对于我们的代码来说："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:20:00.747341Z",
     "start_time": "2021-01-02T04:20:00.741522Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'astro-ph'"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "re.sub(r\"(.*)\\((.*)\\)\",r\"\\2\", \" Astrophysics(astro-ph)\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对应的参数\n",
    "\n",
    "- 正则中的模式字符串 pattern 的格式为 “任意字符” + “(” + \"任意字符\" + \")\"。\n",
    "- 替换的字符串 repl 为第2个分组的内容。\n",
    "- 要被查找替换的原始字符串 string 为原始的爬取的数据。\n",
    "\n",
    "这里推荐大家一个在线正则表达式测试的网站：[https://tool.oschina.net/regex/](https://tool.oschina.net/regex/)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据分析及可视化\n",
    "\n",
    "接下来我们首先看一下所有大类的paper数量分布：\n",
    "\n",
    "我们使用merge函数，以两个dataframe共同的属性 “categories” 进行合并，并以 “group_name” 作为类别进行统计，统计结果放入 “id” 列中并排序。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:20:03.374053Z",
     "start_time": "2021-01-02T04:20:03.002091Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>group_name</th>\n",
       "      <th>id</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Physics</td>\n",
       "      <td>79985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Mathematics</td>\n",
       "      <td>51567</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Computer Science</td>\n",
       "      <td>40067</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Statistics</td>\n",
       "      <td>4054</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Electrical Engineering and Systems Science</td>\n",
       "      <td>3297</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Quantitative Biology</td>\n",
       "      <td>1994</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Quantitative Finance</td>\n",
       "      <td>826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Economics</td>\n",
       "      <td>576</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                   group_name     id\n",
       "0                                     Physics  79985\n",
       "1                                 Mathematics  51567\n",
       "2                            Computer Science  40067\n",
       "3                                  Statistics   4054\n",
       "4  Electrical Engineering and Systems Science   3297\n",
       "5                        Quantitative Biology   1994\n",
       "6                        Quantitative Finance    826\n",
       "7                                   Economics    576"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "_df = data.merge(df_taxonomy, on=\"categories\", how=\"left\").drop_duplicates([\"id\",\"group_name\"]).groupby(\"group_name\").agg({\"id\":\"count\"}).sort_values(by=\"id\",ascending=False).reset_index()\n",
    "\n",
    "_df\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面我们使用饼图进行上图结果的可视化："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:20:05.773739Z",
     "start_time": "2021-01-02T04:20:05.375789Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABDAAAANYCAYAAAAylB2vAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAADp6ElEQVR4nOzdeXxU5fXH8c9DWGV3B0Fxn1GvoOJuXIJaq6nWNbUuWEEbjXVDa3616nSx0trUVo3G3bFuuFeDuxFEFFRUjDJxZwn7OqyBLM/vj2eQELLPJHdm8n2/XnmRzL1z7plJIMyZ5znHWGsREREREREREUlmnfxOQERERERERESkKSpgiIiIiIiIiEjSUwFDRERERERERJKeChgiIiIiIiIikvRUwBARERERERGRpKcChoiIiIiIiIgkPRUwRERERERERCTpqYAhIiIiIiIiIklPBQwRERERERERSXoqYIiIiIiIiIhI0lMBQ0RERERERESSngoYIiIiIiIiIpL0VMAQERERERERkaSnAoaIiIiIiIiIJD0VMEREREREREQk6amAISIiIiIiIiJJTwUMEREREREREUl6KmCIiIiIiIiISNJTAUNEREREREREkp4KGCIiIiIiIiKS9FTAEBEREREREZGkpwKGiIiIiIiIiCQ9FTBEREREREREJOmpgCEiIiIiIiIiSU8FDBERERERERFJeipgiIiIiIiIiEjSUwFDRERERERERJKeChgiIiIiIiIikvRUwBARERERERGRpKcChoiIiIiIiIgkPRUwRERERERERCTpqYAhIiIiIiIiIklPBQwRERERERERSXoqYIiIiIiIiIhI0lMBQ0RERERERESSngoYIiIiIiIiIpL0VMAQERERERERkaSnAoaIiIiIiIiIJD0VMEREREREREQk6amAISIiIiIiIiJJTwUMEREREREREUl6KmCIiIiIiIiISNJTAUNEREREREREkp4KGCIiIiIiIiKS9FTAEBEREREREZGkpwKGiIiIiIiIiCQ9FTBEREREREREJOmpgCEiIiIiIiIiSU8FDBERERERERFJeipgiIiIiIiIiEjSUwFDRERERERERJKeChgiIiIiIiIikvRUwBARERERERGRpKcChoiIiIiIiIgkPRUwRERERERERCTpqYAhIiIiIiIiIklPBQwRERERERERSXoqYIiI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\n",
      "text/plain": [
       "<Figure size 1080x864 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(15,12))\n",
    "explode = (0, 0, 0, 0.2, 0.3, 0.3, 0.2, 0.1) \n",
    "plt.pie(_df[\"id\"],  labels=_df[\"group_name\"], autopct='%1.2f%%', startangle=160, explode=explode)\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面统计在计算机各个子领域2019年后的paper数量，我们同样使用 merge 函数，对于两个dataframe 共同的特征 categories  进行合并并且进行查询。然后我们再对于数据进行统计和排序从而得到以下的结果："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-01-02T04:20:08.518021Z",
     "start_time": "2021-01-02T04:20:08.322838Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>year</th>\n",
       "      <th>2019</th>\n",
       "      <th>2020</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>category_name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Artificial Intelligence</th>\n",
       "      <td>558</td>\n",
       "      <td>757</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Computation and Language</th>\n",
       "      <td>2153</td>\n",
       "      <td>2906</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Computational Complexity</th>\n",
       "      <td>131</td>\n",
       "      <td>188</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Computational Engineering, Finance, and Science</th>\n",
       "      <td>108</td>\n",
       "      <td>205</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Computational Geometry</th>\n",
       "      <td>199</td>\n",
       "      <td>216</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Computer Science and Game Theory</th>\n",
       "      <td>281</td>\n",
       "      <td>323</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Computer Vision and Pattern Recognition</th>\n",
       "      <td>5559</td>\n",
       "      <td>6517</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Computers and Society</th>\n",
       "      <td>346</td>\n",
       "      <td>564</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cryptography and Security</th>\n",
       "      <td>1067</td>\n",
       "      <td>1238</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Data Structures and Algorithms</th>\n",
       "      <td>711</td>\n",
       "      <td>902</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Databases</th>\n",
       "      <td>282</td>\n",
       "      <td>342</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Digital Libraries</th>\n",
       "      <td>125</td>\n",
       "      <td>157</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Discrete Mathematics</th>\n",
       "      <td>84</td>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Distributed, Parallel, and Cluster Computing</th>\n",
       "      <td>715</td>\n",
       "      <td>774</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Emerging Technologies</th>\n",
       "      <td>101</td>\n",
       "      <td>84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Formal Languages and Automata Theory</th>\n",
       "      <td>152</td>\n",
       "      <td>137</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>General Literature</th>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Graphics</th>\n",
       "      <td>116</td>\n",
       "      <td>151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hardware Architecture</th>\n",
       "      <td>95</td>\n",
       "      <td>159</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Human-Computer Interaction</th>\n",
       "      <td>420</td>\n",
       "      <td>580</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Information Retrieval</th>\n",
       "      <td>245</td>\n",
       "      <td>331</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Logic in Computer Science</th>\n",
       "      <td>470</td>\n",
       "      <td>504</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Machine Learning</th>\n",
       "      <td>177</td>\n",
       "      <td>538</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mathematical Software</th>\n",
       "      <td>27</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Multiagent Systems</th>\n",
       "      <td>85</td>\n",
       "      <td>90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Multimedia</th>\n",
       "      <td>76</td>\n",
       "      <td>66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Networking and Internet Architecture</th>\n",
       "      <td>864</td>\n",
       "      <td>783</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Neural and Evolutionary Computing</th>\n",
       "      <td>235</td>\n",
       "      <td>279</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Numerical Analysis</th>\n",
       "      <td>40</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Operating Systems</th>\n",
       "      <td>36</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other Computer Science</th>\n",
       "      <td>67</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Performance</th>\n",
       "      <td>45</td>\n",
       "      <td>51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Programming Languages</th>\n",
       "      <td>268</td>\n",
       "      <td>294</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Robotics</th>\n",
       "      <td>917</td>\n",
       "      <td>1298</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Social and Information Networks</th>\n",
       "      <td>202</td>\n",
       "      <td>325</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Software Engineering</th>\n",
       "      <td>659</td>\n",
       "      <td>804</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sound</th>\n",
       "      <td>7</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbolic Computation</th>\n",
       "      <td>44</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Systems and Control</th>\n",
       "      <td>415</td>\n",
       "      <td>133</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "year                                             2019  2020\n",
       "category_name                                              \n",
       "Artificial Intelligence                           558   757\n",
       "Computation and Language                         2153  2906\n",
       "Computational Complexity                          131   188\n",
       "Computational Engineering, Finance, and Science   108   205\n",
       "Computational Geometry                            199   216\n",
       "Computer Science and Game Theory                  281   323\n",
       "Computer Vision and Pattern Recognition          5559  6517\n",
       "Computers and Society                             346   564\n",
       "Cryptography and Security                        1067  1238\n",
       "Data Structures and Algorithms                    711   902\n",
       "Databases                                         282   342\n",
       "Digital Libraries                                 125   157\n",
       "Discrete Mathematics                               84    81\n",
       "Distributed, Parallel, and Cluster Computing      715   774\n",
       "Emerging Technologies                             101    84\n",
       "Formal Languages and Automata Theory              152   137\n",
       "General Literature                                  5     5\n",
       "Graphics                                          116   151\n",
       "Hardware Architecture                              95   159\n",
       "Human-Computer Interaction                        420   580\n",
       "Information Retrieval                             245   331\n",
       "Logic in Computer Science                         470   504\n",
       "Machine Learning                                  177   538\n",
       "Mathematical Software                              27    45\n",
       "Multiagent Systems                                 85    90\n",
       "Multimedia                                         76    66\n",
       "Networking and Internet Architecture              864   783\n",
       "Neural and Evolutionary Computing                 235   279\n",
       "Numerical Analysis                                 40    11\n",
       "Operating Systems                                  36    33\n",
       "Other Computer Science                             67    69\n",
       "Performance                                        45    51\n",
       "Programming Languages                             268   294\n",
       "Robotics                                          917  1298\n",
       "Social and Information Networks                   202   325\n",
       "Software Engineering                              659   804\n",
       "Sound                                               7     4\n",
       "Symbolic Computation                               44    36\n",
       "Systems and Control                               415   133"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_name=\"Computer Science\"\n",
    "cats = data.merge(df_taxonomy, on=\"categories\").query(\"group_name == @group_name\")\n",
    "cats.groupby([\"year\",\"category_name\"]).count().reset_index().pivot(index=\"category_name\", columns=\"year\",values=\"id\") \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们可以从结果看出，Computer Vision and Pattern Recognition（计算机视觉与模式识别）类是CS中paper数量最多的子类，遥遥领先于其他的CS子类，并且paper的数量还在逐年增加；另外，Computation and Language（计算与语言）、Cryptography and Security（密码学与安全）以及 Robotics（机器人学）的2019年paper数量均超过1000或接近1000，这与我们的认知是一致的。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
